package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.Date;
import java.util.Vector;

import javax.swing.JFileChooser;
import javax.swing.plaf.basic.BasicBorders.SplitPaneBorder;

import modelo.*;
import vista.Vequipo;

public class CEquipo implements ActionListener {
	private Vequipo ve;
	private Equipo me;
	private Vector<Equipo> vectorequipo;
	private int o = 0;

	public CEquipo(Vector<Equipo> vectorEquipo) {
		super();
		this.ve = new Vequipo();
		this.ve.botonCargar(true);
		this.ve.setLocation(480, 210);
		this.ve.setVisible(true);
		this.ve.addListener(this);
		this.ve.botonRegistar(false);
		me = new Equipo();
		vectorequipo = vectorEquipo;
		// TODO Auto-generated constructor stub
	}

	public void actionPerformed(ActionEvent E) {
		String accioncommand = E.getActionCommand();
		if (accioncommand == "Registrar Equipo") {
			registrarEquipo();
			ve.botonCargar(true);
			imprimir();
		} else if (accioncommand == "Cargar Equipo") {
			cargarEquipo();
			ve.botonCargar(false);
			ve.botonRegistar(true);
		} else if (accioncommand == "Cancelar") {
			ve.limpiar();
			ve.botonCargar(true);
			ve.botonRegistar(false);
		}
	}

	public void registrarEquipo() {
		if (ve.getCodEquipo().equals("") || ve.getPais().equals("")
				|| ve.getAnnoFundacion().equals("") || ve.getCoach().equals(""))

			// validacion y mostrando el msj para que el usuario llene los
			// campos
			ve.mensaje("Debe llenar todos los campos para agregar al Equipo");

		else {

			me = new Equipo(ve.getCodEquipo(), ve.getPais(),ve.getAnnoFundacion(), ve.getCoach());
			vectorequipo.add(me);

			ve.botonRegistar(false);
			ve.limpiar();
		}

	}

	public void imprimir() {
		for (int i = 0; i < vectorequipo.size(); i++) {
			System.out.println("Codigo de equipo: "
					+ vectorequipo.get(i).getCodEquipo());
			System.out.println("Pais " + vectorequipo.get(i).getPais());
			System.out.println("Año de fundacion: "
					+ vectorequipo.get(i).getAnnofundacion());
			System.out.println("Entrenador: " + vectorequipo.get(i).getCoach());
		}

	}

	public Equipo cargarEquipoDeTxt(Equipo equipo) {

		JFileChooser fileChooser = new JFileChooser(
				"C:/Users/AnH/Desktop/workspace/CampeonatoNatacion");
		int seleccion = fileChooser.showOpenDialog(ve.getJText());
		if (seleccion == JFileChooser.APPROVE_OPTION) {
			File fichero = fileChooser.getSelectedFile();
			FileReader fr;
			try {
				fr = new FileReader(fichero);
				BufferedReader br = new BufferedReader(fr);
				String line = br.readLine();
				String cadena[];
				while (line != null) {
					Nadador nadador = new Nadador();
					cadena = line.split("#");
					nadador.setCedula(Long.parseLong(cadena[0]));
					nadador.setNombre(cadena[1]);
					nadador.setApellido(cadena[2]);
					nadador.setFechaNacimiento(cadena[3]);
					nadador.setSexo(cadena[4]);
					nadador.setEspecializacion(cadena[5]);
					nadador.setEspecializacion1(cadena[6]);
					nadador.setTiempoCompetencia(Integer.parseInt(cadena[7]));
					equipo.getVectornadador().add(nadador);
					line = br.readLine();
				}
				br.close();
				// colocar etiquetas en NEGRITA

				for (int i = o; i < equipo.getVectornadador().size(); i++) {
					String listado = ("Cedula: "
							+ equipo.getVectornadador().get(i).getCedula()
							+ "  "
							+ "Nombre: "
							+ equipo.getVectornadador().get(i).getNombre()
							+ "  "
							+ "Apellido: "
							+ equipo.getVectornadador().get(i).getApellido()
							+ "  "
							+ "Fecha de Nacimiento:  "
							+ equipo.getVectornadador().get(i)
									.getFechaNacimiento()
							+ "  "
							+ "Sexo: "
							+ equipo.getVectornadador().get(i).getSexo()
							+ "   "
							+ "especializacion: "
							+ equipo.getVectornadador().get(i)
									.getEspecializacion()
							+ "y"
							+ equipo.getVectornadador().get(i)
									.getEspecializacion1()
							+ "  "
							+ "Tiempo: "
							+ equipo.getVectornadador().get(i)
									.getTiempoCompetencia() + "\n");
					o = i;
					int posi = 0;
					ve.getJText().insert(listado, posi);
					posi++;
				}
				ve.mostarNadadores(ve.getJText());
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return equipo;
	}

	public void cargarEquipo() {
		Equipo equipocargar = new Equipo();
		equipocargar = cargarEquipoDeTxt(equipocargar);
		// System.out.println("mensaje:"+equipocargar.getVectornadador().get(0).getEspecializacion1());
		me.setVectornadador(equipocargar.getVectornadador());
	}
}
